using Medical.Domain.Enum;
using System.Collections.Generic;
using static Medical.Domain.Enum.DepartmentEnum;

namespace Medical.Api.Read.Dto.DepartmentManagement.Sign
{
    /// <summary>
    /// 签收表数据传输对象
    /// </summary>
    public class SignDto
    {
        /// <summary>
        /// 发放表ID
        /// </summary>
        public int Id { get; set; } // 发放表ID

        /// <summary>
        /// 发放单号
        /// </summary>
        public string LssueCode { get; set; } // 发放单号

        /// <summary>
        /// 发放人
        /// </summary>
        public string LssueName { get; set; } // 发放人

        /// <summary>
        /// 发放时间
        /// </summary>
        public DateTime? LssueDate { get; set; } // 发放时间

        /// <summary>
        /// 接收单位(科室Id)
        /// </summary>
        public ApplyingUnitEnum ApplyingUnit { get; set; } // 接收单位

        /// <summary>
        /// 接收人
        /// </summary>
        public string AcceptName { get; set; } // 接收人

        /// <summary>
        /// 发放状态
        /// </summary>
        public LssueTypeEnunm LssueState { get; set; } // 发放状态

        /// <summary>
        /// 发放状态名称
        /// </summary>
        public string LssueStateName { get; set; } // 发放状态名称

        /// <summary>
        /// 发放明细列表
        /// </summary>
        public List<SignDetailDto> Details { get; set; } = new List<SignDetailDto>(); // 发放明细列表
    }

    /// <summary>
    /// 签收明细数据传输对象
    /// </summary>
    public class SignDetailDto
    {
        /// <summary>
        /// 明细ID
        /// </summary>
        public int Id { get; set; } // 明细ID

        /// <summary>
        /// 发放主表ID
        /// </summary>
        public int LssueId { get; set; } // 发放主表ID

        /// <summary>
        /// 物品类型
        /// </summary>
        public MaterialTypeEnum MaterialType { get; set; } // 物品类型

        /// <summary>
        /// 物品类型名称
        /// </summary>
        public string MaterialTypeName { get; set; } // 物品类型名称

        /// <summary>
        /// 物品ID
        /// </summary>
        public int MaterialId { get; set; } // 物品ID

        /// <summary>
        /// 物品编码
        /// </summary>
        public string MaterialCode { get; set; } // 物品编码

        /// <summary>
        /// 物品名称
        /// </summary>
        public string MaterialName { get; set; } // 物品名称

        /// <summary>
        /// 发放数量
        /// </summary>
        public int LssueNum { get; set; } // 发放数量
    }
} 